FET FAQ:

Documento scritto da Liviu Lalescu, rivisto e modificato - 4 agosto 2008
Traduzione di Marco Barsotti - 8 agosto 2008

--------

D: Come sono organizzati i dati di input di FET?

R: Occorrono i seguenti elementi:

- Studenti. Organizzati in insiemi (anni che contengono classi -o gruppi- che contengono sottogruppi).

- Insegnanti.

- Materie (nomi dei possibili corsi, ad es. matematica, fisica, italiano, ma anche ita-lat o ita-sto ecc. per indicare attivit di un insegnante che insegna pi materie agli stessi studenti),

- Propriet (o caratteristica) della materia (o dell'attivit). Si pu utilizzare o meno, l'opzione  a vostra disposizione. Serve a specificare il tipo di attivit: laboratorio, corso, seminario, o qualsiasi altra informazione collegata ad un'attivit. Servir a definire vincoli pi selettivi.

- Aule.

- Attivit: la combinazione di uno o pi insegnanti, una materia e uno o pi insiemi di studenti. In genere indica un corso (un laboratorio) composto da una o pi lezioni. Un'attivit pu avere, opzionalmente, una propriet (o caratteristica), per aiutarvi con alcuni vincoli.

- Vincoli. Possono essere vincoli di orario (con riferimento a giorno e ora assegnati) o vincoli di spazio (con riferimento all'aula). Si misurano in base a un peso percentuale, da 0,0% a 100,0%. 100% significa che il vincolo dovr essere sempre rispettato ma, se questo vincolo  impossibile, FET non sar in grado di generare un orario.

-------------------------------------------------------------------------------

D: Perch alcune attivit elencate nella fiestra di dialogo appaiono rientrate mentre altre no?

R: Le attivit sono mostrate rientrate per una pi facile visualizzazione. Quelle non rientrate sono le principali di una attivit suddivisa in pi parti (la loro id  l' id dell'intero insieme di attivit), mentre quelle rientrate sono le sotto componenti di questa pi grande attivit (corso).

--------------------------------------------------------------------------------

D: E' possibile utilizzare pesi non interi per i vincoli?

R: S. Usare valori come il 99,75% pu essere utile.

--------------------------------------------------------------------------------

D: Aiuto su ConstraintStudentsEarlyMaxBeginningsAtSecondHour.

R: E' possibile specificare il numero massimo per settimana di inizio lezioni alla seconda ora (l'inizio alla terza ora  escluso). 

Se immetti dati parziali, utilizza questo vincolo con cautela. Supponiamo di aggiungere un vincolo con massimo zero inizi alla seconda ora: Potresti, ad esempio, avere solo 4 + 4 ore di attivit di matematica con lo stesso insegnante per 2 classi (ogni gruppo di 4 attivit deve essere bilanciato e distribuito in giorni differenti). Allora  chiaro che non puoi disporre tutte e 8 le attivit in una settimana di 6 giorni senza infrangere il vincolo di ingresso degli studenti alla prima ora: sar impossibile trovare un orario.

-------------------------------------------------------------------------------

D: Come funziona FET?

R: Fa uso di un algoritmo euristico, basato sullo scambio ricorsivo di attivit per fare spazio a nuove attivit. Scrivi una email all'autore o alla mailing list per avere pi dettagli.

-------------------------------------------------------------------------------

D: Come si pu fare con materie opzionali o con insiemi di studenti suddivisi in base a scelte facoltative?

R: Un metodo possibile: in FET potete assegnare ogni attivit a pi insiemi di allievi ed insegnanti. Se avete per esempio l'insieme di allievi S che ha una lezione di inglese (con l'insegnante Insing) o francese (insegnante Insfra), potreste scegliere di non dividere S e aggiungere un'attivit di lingua con studenti S e InsIng e InsFra. Lo svantaggio: ogni attivit dovrebbe avvenire in una aula diversa, e non puoi dire a FET che questa attivit dove svolgersi in 2 o pi aule allo stesso tempo. Da qui derivano altri problemi: se una certa aula non  disponibile, se la capienza dell'aula  troppo bassa per il numero di allievi in S, FET non pu trovare l'orario ecc. Un altro metodo: potresti suddividere gli allievi in sezioni (vedi la domanda seguente).

-------------------------------------------------------------------------------

D: Come si possono definire gli studenti in sezioni?

R: FET pu dividere gli anni in base ad un massimo di 3 tipologie o categorie. Se hai bisogno di dividere un anno in 4 categorie,  possibile utilizzare un piccolo trucco. Aggiungi anni e imposta l'opzione "Dividi ..." nella finestra di dialogo:  la via pi facile.  comunque anche possibile aggiungere manualmente anni, classi e sottogruppi.

Se (ad esempio) ciascuno di 9 anni  suddiviso in non pi di 3 categorie,  possibile aggiungere 9 anni e dividerli in 3 categorie. Se un anno va  diviso in 4 categorie (per esempio, l'anno 9  diviso per: sezione (A, B, C, e D), lingua (inglese, francese e spagnolo), religione e maschi e femmine, si potrebbero considerare gli anni: 9A, 9B, 9C e 9D ciascuno diviso in 3 categorie, dividendo ogni anno nella finestra di dialogo. Per pi di 4 categorie, caso molto improbabile, sar necessario modificare manualmente le classi / sottogruppi.

Importante: si deve tenere conto che ogni anno contiene classi che contengono sottogruppi indipendenti. I sottogruppi dovrebbero avere tutte le attivit dell'anno, della classe e altre attivit facoltative. Verifica nel menu statistiche / studenti per sottogruppi, che ogni sottogruppo abbia il corretto numero di ore di studio settimanali, che sar certamente vicino alla media delle ore settimanali di tutti i sottogruppi.

Un'errata divisione degli anni pu essere causa di un orario impossibile. Verifica le statistiche / studenti per tutti i sottogruppi: ogni sottogruppo dovr avere il giusto numero di ore, non di meno. Se per esempio hai alcuni sottogruppi con meno di, diciamo, 20 ore alla settimana si potrebbe avere un orario impossibile, probabilmente a causa di un'errata divisione di anni e/o di un'errata attribuzione di attivit. Tutti i sottogruppi sono indipendenti. Se si dispone di un sottogruppo con solo 2 ore alla settimana e vincolo di inizio alla prima ora, allora queste 2 attivit devono essere piazzate alle prime ore del giorno, che  troppo restrittivo e, probabilmente sbagliato.

Nota importante: fai una corretta divisione degli anni all'inizio. Ogni volta che si divide un anno, le attivit e i vincoli riferiti a classi e sottogruppi di quell'anno saranno rimossi, insieme con classi e sottogruppi. Questo non  elegante, lo so, e cercher di trovare una soluzione migliore per il futuro. Se hai gi inserito un sacco di vincoli e attivit riferendoti a classi / sottogruppi di un anno, potresti voler modificare manualmente la divisione di quell'anno dal menu classi / sottogruppi.

Un'altra possibilit: potresti osservare che ogni attivit  condivisa da pi insiemi di studenti / insegnanti. Se hai bisogno di dividere gli studenti dell'anno Y per Lingua (con gli insegnanti T1 e T2), potresti, senza dividere Y, impostare un'attivit con Y e insegnanti T1 e T2 e la materia Lingua. Questo  un piccolo trucco, che potrebbe essere pi semplice utilizzare piuttosto che dividere un anno.

-------------------------------------------------------------------------------

D: Qual  la struttura degli studenti che FET  in grado di gestire?

R: FET  stato progettato per adattarsi a qualsiasi struttura scolastica:
- sottogruppi indipendenti (non sovrapponibili);
- classi sovrapponibili (pi sottogruppi);
- anni (pi classi).

-------------------------------------------------------------------------------

D: Come si pu lavorare con strutture di allievi in sovrapposizione?

R: Se hai classi in sovrapposizione, allora devi definire il pi piccolo sottogruppo indipendente, che non si intersechi con qualunque altro sottogruppo. Esempio: hai una classe, materia ginnastica (che deve essere svolta separatamente fra ragazzi e ragazze) e la materia lingua tedesca, che  facoltativa e soltanto alcuni allievi ha questo corso ( FET pu controllare insegnamenti facoltativi). Allora, devi definire i sottogruppi: gli allievi (maschi) che scelgono la lingua tedesca, quelli che non la scelgono, le allieve che scelgono la lingua tedesca e quelle che non la scelgono. Ora,  molto facile. Definisci: - gruppo ragazze = sottogruppo di allieve che ha scelto la lingua tedesca + le allieve che non la vogliono - gruppo ragazzi = sottogruppo di allievi che ha scelto la lingua tedesca + gli allievi che non la vogliono - gruppo tedesco = sottogruppo di allievi che ha scelto la lingua tedesca + le allieve che hanno scelto la lingua tedesca.

Puoi, quindi, aggiungere quante attivit occorrono ai gruppi corrispondenti: Attivit 1: insegnante A, gruppo ragazze, materia ginnastica; Attivit 2: insegnante B, gruppo ragazzi, materia ginnastica; Attivit 3: insegnante C, gruppo tedesco, materia facoltativa lingua tedesca.

La cosa pu anche essere fatta automaticamente. Nella finestra di dialogo "anni" scegli dividi anno secondo la categoria maschio / femmina e la categoria tedesco si / tedesco no. Vedi la voce precedente delle FAQ.

-------------------------------------------------------------------------------

D: Si possono assegnare pi insiemi di studenti e/o pi insegnanti a singole attivit?

R: S, puoi aggiungere pi insiemi di allievi (sottogruppi, classi o anni) e pi insegnanti per ogni attivit.

-------------------------------------------------------------------------------

D: Come posso contribuire e sostenere lo sviluppo di FET?

R: Puoi tradurre, migliorate l'interfaccia o altro. Invia una email all'autore o alla mailing list per altri dettagli. FET  software libero e qualsiasi donazione  gradita. Per questo, contatta l'autore.

--------------------------------------------------------------------------------

D: Che vantaggi ha FET su altre applicazioni?

R:  software libero e...:
- sottogruppi indipendenti, classi indipendenti o in sovrapposizione, anni indipendenti e in sovrapposizione (abbastanza flessibili da consentire qualsiasi genere di struttura degli allievi). FET pu persino essere utilizzato per gestire ogni singolo allievo, se realmente ce n' bisogno;
- possibilit di definire attivit facoltative;
- molti generi di vincoli implementati e possibilit di aggiungerne di nuovi (suggerisci per favore!).

-------------------------------------------------------------------------------

D: Quali sono gli svantaggi di FET, in confronto ad altre applicazioni?

R: - molto spartano (pochi aiuti, interfaccia utente dalla grafica primitiva);
- potrebbe nascondere qualche bug. Non ho abbastanza file di esempio per testare FET a fondo (e odio testare : -)

-------------------------------------------------------------------------------

D: Si pu compilare FET su sistemi operativi diversi da GNU / Linux?

R: FET pu essere compilato facilmente sotto sistemi operativi simili a GNU / Linux. Fornir aiuto per compilare questo programma con qualsiasi sistema operativo. In particolare FET pu essere compilati su Microsoft Windows, se si installa Qt da trolltech.com.

-------------------------------------------------------------------------------

D: FET pretende di essere il migliore dei software per fare orari scolastici al mondo, come tutte le altre applicazioni del genere?

R: non lo posso sostenere , perch non ho potuto confrontare FET con altre applicazioni (se tu potessi fare un paragone sarebbe una gran cosa). Tutto quello che posso dire per ora  che non conosco alcuna applicazione con tanti tipi di vincoli e con tanta flessibilit come FET, (che sia anche software libero o meno).

-------------------------------------------------------------------------------

D: FET  il primo software libero per fare l'orario scolastico (GNU / GPL)?

R: Hmmm ... Il primo  stato Tablix, come ho scoperto dopo la rifinitura di FET. Puoi trovare link a questo software se cerchi nella pagina dei LINKS o se lo cerchi su Internet.

-------------------------------------------------------------------------------

D: Aiuto su ConstraintMinNDaysBetweenActivities (Vincolo di numero minimo di giorni tra attivit).

R: E' un vincolo che si riferisce a una serie di attivit e comporta una costante, N. Per ogni coppia di attivit nel set, non permette che la loro distanza (in giorni) sia inferiore a N. Se si specifica N = 1, allora questo vincolo implica che due attivit non possono essere assegnate nella stessa giornata. N = 2 significa che due attivit devono essere separate da almeno un giorno

Esempio: 3 attivit ed N = 2. Quindi, si possono collocare il luned, mercoled e venerd (5 giorni la settimana).

Esempio 2: 2 attivit, N = 3. Quindi, si possono collocare il luned e il gioved oppure il luned e il venerd oppure il marted e il venerd (5 giorni la settimana).

Il peso raccomandato  tra 95,0% -100,0%. Il migliore potrebbe essere 99,75% o un valore di poco inferiore al 100%, in quanto FET potrebbe incontrare un vincolo impossibile e in questo modo evitare di restare senza soluzione. Il peso  soggettivo.

 possibile imporre Attivit Consecutivie se piazzate nello stesso giorno. Bisogna fare attenzione, per, se  presente il vincolo minimo numero di giorni tra attivit (anche col peso dello 0%) In caso si selezioni Attivit Consecutive se stesso giorno, questa consecutivit sar forzata. Non sarai in grado di trovare un orario con due attivit nello stesso giorno separate da una interruzione, indisponibilit o da altre attivit, anche se il vincolo ha peso 0%, in caso tu abbia selezionato Attivit Consecutive se stesso giorno.

Attualmente FET pu mettere al massimo 2 attivit nello stesso giorno in caso "Attivit Consecutivi se stesso giorno" sia selezionato. FET non pu mettere 3 o pi attivit nello stesso giorno qualora "Attivit Consecutivi se stesso giorno" sia selezionato.

Importante: evitare di inserire inutili duplicati. Se per esempio inserisci 2 vincoli:
1. Attivit 1 e 2, minimo giorni 1, consecutive se stesso giorno = vero, il peso = 95%
2. Attivit 1 e 2, minimo giorni 1, consecutive se stesso giorno = falso, peso = 95% (Questi sono vincoli diversi), la risultante di questi 2 vincoli sar un vincolo: Attivit 1 e 2, minimo giorni 1, consecutive se stesso giorno = vero, peso = 100%-5%*5% = 99.75%, molto alto. Ci a causa dell'algoritmo di FET. Puoi tuttavia aggiungere 2 vincoli per le stesse attivit se desideri 100% con minimo 2 giorni e 95% con minimo 1 giorno. Questi non sono duplicati. Potrebbe essere impossibile trovare un orario con i duplicati, quindi evitali.

Nuovo, 14 giugno 2008: se occorre distribuire 3 attivit in una settimana di 5 giorni  possibile aggiungere, a partire dalla versione 5.5.8, direttamente nella finestra di dialogo delle attivit, 2 vincoli. Basta indicare minimo 2 giorni tra le attivit. FET chieder poi se si vuole aggiungere un secondo vincolo con minimo 1 giorno. In questo modo si  pi garantiti di avere attivit bilanciate (al 99,75% si avranno 1, 2 e 2 giorni di distanza tra le 3 attivit).

-------------------------------------------------------------------------------

D: Posso utilizzare il FET per fare l'orario in modo interattivo?

R: S, ma non  facile. Tutta la parte che riguarda la rappresentazione dei dati e la costruzione graduale della soluzione sta funzionando, solo l'interfaccia deve essere migliorata. In ogni modo, quando aggiungi un Vincolo di Orario Preferito per Attivit obbligatorio, hai piazzato e bloccato quell'attivit. Puoi usare questa caratteristica per fare orari semiautomatici o persino manuali, ma non  cos conveniente.

-------------------------------------------------------------------------------

D: Dopo l'individuazione dell'orario della nostra scuola, supponiamo che un singolo insegnante debba modificare il suo orario e gli altri vorrebbero mantenere il loro orario immutato. Quindi,  necessario bloccare tutte le ore del resto degli insegnanti e ridistribuire le attivit. FET pu occuparsi di una tal situazione?

R: S, FET pu occuparsi di questo. Aggiungi molti "Vincoli obbligatori di orari preferenziali per attivit", uno per ogni attivit che vorreste limitare (l'orario preferito sar quello dalla assegnazione precedente).

Nuovo, 28 giugno 2008: Il calendario pu essere salvato come file .Fet, con le attivit bloccate, e si possono sbloccare solo determinate attivit (di uno o pi docenti).

-------------------------------------------------------------------------------

D: Da Yush Yuen: I nostri insegnanti hanno la pausa pranzo in entrambe la quinta e sesta ora. Come posso impostarle con FET?

R: Da Volker Dirr: Aggiungi una materia "pranzo". Allora aggiungi poi nuove attivit. Queste attivit devono comprendere l'insegnante, la materia pranzo, numero di attivit pari al numero di giornate lavorative dell'insegnante della durata ciscuna di due ore, vincolo 100% del numero minimo di giorni tra attivit = 1 e non aggiungere studenti. Poi definisci il vincolo di Orario preferito per attivit alla quinta e sesta ora con peso 100%.

-------------------------------------------------------------------------------

D:  possibile fare un orario in cui gli allievi sono divisi in due turni? (per esempio, le prime classi alla mattina e le ultime classi nel pomeriggio)?

R: S, devi aggiungere pi vincoli per Classi non disponibili in accordo (dal luned al sabato le prime classi saranno non disponibili dall'ora di pranzo fino all'ultima ora pomeridiana e le ultime classi dalla prima ora all'ora di pranzo). I vincoli Nessun buco e Ingresso alla prima ora funzionano correttamente con queste indisponibilit: se non disponibile, una classe non avr buchi n violato il vincolo Ingresso alla prima ora per il periodo di indisponibilit.

-------------------------------------------------------------------------------


D: Cosa sono i gruppi di tipo "anno1_WHOLE_YEAR" e sottogruppi di tipo "gruppo1_WHOLE_GROUP"?

R: Si tratta di gruppi e sottogruppi inseriti automaticamente da FET nelle versioni precedenti la 5.4.17. Adesso si possono rimuovere.

--------------------------------------------------------------------------------

D: Ho aggiunto un'attivit con Vincolo di numero minimo di giorni. Ma non riesco a vedere il valore numero minimo di giorni nella finestra di dialogo per la modifica dell'attivit.

R: Il numero minimo di giorni  un vincolo di tempo. Puoi trovarlo nella finestra di dialogo di vincoli di tempo.

--------------------------------------------------------------------------------

D: Posso lavorare con attivit quindicinali come nelle prime versioni di FET?

Risposta modificata il 21 luglio 2008:

R: Occorre usare un trucco. Sarebbe molto difficile fare attivit quindicinali con il nuovo algoritmo di FET (a partire dalla versione 5.0.0). Ma penso che si possa fare cos: per esempio, supponiamo che tu voglia avere nella prima settimana l'attivit A1 (con l' insegnante T1 e gli studenti S1) e A2 (T2, S2) mentre la seconda settimana A3 (T1, S2) e A4 (T2, S1) (contemporaneamente). Potresti definire una attivit settimanale A (T1, T2, S1, S2). Se occorrono due aule per A si pu definire una A' fittizia (niente insegnanti, niente studenti) e vincolare le attivit A e A' ad iniziare alla stessa ora dopo aver abbinato le aule ad A e A'.

--------------------------------------------------------------------------------

D: Come scegliere il peso percentuale di vincolo numero minimo di giorni tra attivit?

R:  possibile utilizzare per il vincolo minimo numero di giorni il peso desiderato. Esso pu essere del 95%, 99%, 99,75% o addirittura il 100%, ma assicurati che l'orario non venga troppo limitato. Per prevenire vincoli impossibili, dovrebbero avere un peso sotto il 100% - sarebbe meglio 0%. Ad esempio, se un insegnante insegna solo due giorni alla settimana e ha 3 lezioni di matematica di una classe,  chiaro che il vincolo non pu essere rispettato, e quindi il modo giusto  specificare pesi sotto il 100% (percentuale) per il vincolo numero minimo di giorni.

Potreste provare inizialmente il 95%, valore minimo suggerito, quindi alzare la percentuale del peso fino quasi al 100%. Non sono sicuro qui, non ho abbastanza file di esempio (contribuisci per favore con un consiglio). Se vuoi cambiare il 95% per un altro valore per tutti i vincoli di questo tipo, il modo pi semplice  in Dati / Vincoli di tempo / Finestra di dialogo Min n giorni tra attivit, dove a partire dalla versione 5.3.6 c' un comando semplice per questo.

Potresti desiderare di scegliere pesi differenti per i diversi vincoli Numero minimo di giorni (per esempio, pi alto sui corsi con meno lezioni alla settimana).

-------------------------------------------------------------------------------


D: Ci sono vincoli pi efficienti di altri nella velocit di generazione, anche se forniscono lo stesso risultato?

R: Da come l'algoritmo  concepito, la generazione automatica  pi veloce se usi vincoli per insiemi di allievi (o insegnanti) non disponibili e/o vincoli d'orario preferito per attivit, per individuare ed escludere le ore impossibili da assegnare, oltre a far uso del numero massimo di ore giornaliere per allievi o insegnanti, ogni volta che  possibile. Per esempio, se sapete che l'anno 4 avr soltanto ore dalle 8:00 alle 13:00,  meglio aggiungere il vincolo per allievi non disponibili alla sesta ora ed insieme aggiungere il vincolo per numero massimo di ore quotidiane per gli allievi. Cos, se possibile, prova a seguire questo consiglio. Questo trucco aiuta a guidare meglio FET verso una soluzione.

Ogni vincolo di tipo Non disponibile o Orario preferito che permette di esclude le ore impossibili da usare potrebbe portare un miglioramento nella velocit.

-------------------------------------------------------------------------------

D:  permesso usare pesi non interi?

R: Se un vincolo ammette valori sotto 100%, puoi usare qualsiasi peso, compresi numeri decimali come 99,75%. Potrebbe essere utile nei vincoli come il Numero minimo di giorni, le aule preferite o le ore massime quotidiane.

-------------------------------------------------------------------------------

D: Con al massimo 5 ore al giorno e 2 buchi alla settimana, in 4 casi ha piazzato 3 lezioni + 2 buchi + 2 lezioni che non  accettabile, perch un altro giorno ci sono solo 2 lezioni e non vorrei che i buchi fossero lo stesso giorno, ma soltanto nei casi con pi ore. Come possa mantenere l'equilibrio in questo?

R: Allora devi aggiungere 2 attivit supplementari per l'insegnante, ciascuna con la durata 1 ed allievi vuoti ed oggetto fittizio e buchi massimi per questo insegnante 0.

--------------------------------------------------------------------------------

D: Ho una palestra che consente pi di 1 attivit simultaneamente. Come definire i vincoli per aula preferita? FET pu accettare pi di una attivit allo stesso tempo in una stessa aula?

R: Ogni aula pu ospitare una singola attivit allo stesso tempo. Come attuare ci di cui hai bisogno? Puoi aggiungere pi palestre (sport1, sport2, sport3) riferite alla stessa, e invece di un unica aula preferita, indicare pi aule.

--------------------------------------------------------------------------------

D: Aiuto! Sono incappato in un orario impossibile da risolvere

R: Se si ottiene un orario impossibile, pu darsi che eliminando alcuni / tutti i vincoli di Ingresso alla prima ora degli studenti e sostituendoli con altri (studenti non disponibili o interruzioni) potrebbe aiutare. Anche Numero minimo di ore al giorno per insegnanti potrebbe essere troppo forte. Controllate anche le statistiche da correggere. Rimuovere altri vincoli fino a ottenere un orario possibile.

--------------------------------------------------------------------------------

D: E' possibile prevedere di usare l'ora 0 ?

R: Un po' difficile. Si deve scegliere un giorno per questa ora 0. Poi aggiungere interruzioni o non disponibilit per prevenire altre attivit in altri giorni all'ora zero, poi aggiungere studenti non disponibili per prevenire che altri insiemi di studenti abbiano ore a questa ora 0. O varianti simili.

Mr Zsolt Udvari ha utilizzato un altro trucco: considerata l'ultima ora come ora 0. Ma questo non  sempre utilizzabile.

--------------------------------------------------------------------------------

D: Cos' il vincolo di Minimo numero di ore al giorno per insegnante?

R: Se vi sono insegnanti che ottengono giorni con una sola ora di lavoro, si pu aggiungere il vincolo di numero minimo di ore al giorno (per esempio con 2 ore), ma occorre accertarsi che rimanga possibile calcolare un orario. Questo vincolo  intelligente, ha effetto solo con giorni non vuoti.

--------------------------------------------------------------------------------

D: Come fa FET a tener conto dei pesi. Che cosa significano?

R: I pesi sotto il 100% sono soggettivi, perch FET pu ignorare il vincolo, se necessario.

Volker Dirr ha cercato di definire come FET tratta i pesi sotto il 100%, ma le sue parole non riflettono completamente i fatti:

Ecco un commento da Mr Volker Dirr:
Peso = 50%: in media FET riprova per due volte a piazzare un'attivit senza conflitti. Se non  in grado di collocare l'attivit senza conflitto dopo 2 tentativi in media, mantiene il conflitto prova a disporre la prossima attivit.
Peso = 75%: in media FET tenta quattro volte di piazzare un'attivit senza conflitto. Se non  in grado di collocare l'attivit senza conflitto dopo 4 tentativi in media, mantiene il conflitto e prova a disporre la prossima attivit.
Peso = 99%: in media FET prova 100 volte a piazzare un'attivit senza conflitto. Se non riesce a trovare un'attivit senza un conflitto dopo 100 tentativi in media, mantiene il conflitto e prova a disporre la prossima attivit.
Peso = 99.99%: in media FET tenta 10000 volte di piazzare un'attivit senza un conflitto. Se non  in grado di collocare l'attivit senza conflitto dopo 10000 tentativi in media, mantiene il conflitto e prova a disporre l'attivit seguente.

Ci non  del tutto corretto. Le attivit possono rimanere inallocate e ciclicamente essere rimesse in gioco.

-------------------------------------------------------------------------------
Modificato il 28 giugno 2008

D: Aiuto sul vincolo di orari (di inizio) preferiti per pi attivit (un insieme di attivit ha un insieme di orari preferiti - oppure orari di inizio preferiti)

R: Puoi specificare un insieme di attivit selezionando un insegnante (nessuna selezione --> tutti gli insegnanti), insieme di allievi (nessuna selezione --> tutti gli allievi), una materia (nessuna selezione --> tutte le materie) e una propriet della attivit (se nessuna selezione --> tutte le propriet) e un insieme di giorni disponibili.

Orario di inizio preferito significa che un attivit pu iniziare solo in questi orari.

Orari preferiti sono pi restrittivi e significa che l'attivit pu solo iniziare, finire ed essere piazzata in questi intervalli (se l'attivit dura 2 ore e Lunedi  consentita alle 8:00, 9:00 e 10:00, l'attivit non pu che partire alle 8: 00 o alle 9:00)
-------------------------------------------------------------------------------

D: Aiuto sul menu di statistiche

R: Le statistiche sono importanti per controllare i vostri dati prima della generazione. Nel vedere le statistiche degli allievi, probabilmente le pi utili sono per i sottogruppi. Ogni sottogruppo dovrebbe avere una quantit ragionevole di ore e se state avendo sottogruppi con troppo poche ore, come 2 alla settimana, probabilmente avete compreso male come FET descrive le strutture di studenti. Ogni sottogruppo  indipendente dagli altri e dovrebbe avere un certo numero di ore alla settimana vicino alla media di tutti i sottogruppi. Non immettere sottogruppi vuoti con soltanto poche attivit.

-------------------------------------------------------------------------------

D: Che cosa succede se inserisco accidentalmente vincoli duplicati?

R: Non  una buona pratica permettere vincoli duplicati inutili. Per il vincolo di orario preferito per attivit e per quello di numero minimo di giorni fra attivit e per altri vincoli, il peso unito diventa molto alto. Per esempio, se avete 2 vincoli con peso 95%, il risultato  un vincolo con peso 100%-5%*5%=99.75%, molto alto. Potreste ottenere un orario impossibile con i duplicati, e conviene evitarli.

-------------------------------------------------------------------------------
Nuovo - Aggiunto 24 marzo 2008:

D: Maggiori informazioni sulla struttura degli studenti

A: La struttura degli studenti  molto flessibile si adatta alla struttura di qualsiasi istituzione.

Il concetto principale  che i sottogruppi sono indipendenti. Ogni sottogruppo deve essere la pi piccola unit di insegnamento, al limite anche un solo studente.

I gruppi (classi) possono contenere qualsiasi sottogruppo. I gruppi (classi) possono sovrapporsi.

Gli anni possono contenere qualsiasi gruppo.

Non  necessario seguire esattamente  la gerarchia dell'istituto,  possibile modellare la struttura per essere in grado di utilizzare meglio FET.

Esempio: si dispone di una scuola con anni (1, 2, ..., 5), sezioni (1_a, 1_b, ...) e sottosezioni (1_a_x, 1_a_y, ...). Ogni sottosezione ha la lingua opzionale inglese o francese o tedesco (ad esempio, una serie di studenti che studia la lingua inglese  ING, e chi non studia la lingua inglese  !ING). Quindi la corretta struttura :

sottogruppi
1_a_x_ENG_FRE_GER,
1_a_x_! ENG_FRE_GER,
1_a_x_ENG_! FRE_GER,
1_a_x_! ENG_! FRE_GER,
1_a_x_ENG_FRE_! GER,
1_a_x_! ENG_FRE_! GER,
1_a_x_ENG_! FRE_! GER,
1_a_x_! ENG_! FRE_! GER,

1_a_y_ENG_FRE_GER,
... Stessa per 1_a_y (8 sottogruppi)

(si pu prendere in considerazione di non 'aggiungere sottogruppi vuoti, per esempio se ogni studente ha una sola lingua, allora si possono considerare solo 3 sottogruppi di 8)

gruppi:
1_a
Contiene sottogruppi:
1_a_x_ENG_FRE_GER,
1_a_x_! ENG_FRE_GER,
1_a_x_ENG_! FRE_GER,
1_a_x_! ENG_! FRE_GER,
1_a_x_ENG_FRE_! GER,
1_a_x_! ENG_FRE_! GER,
1_a_x_ENG_! FRE_! GER,
1_a_x_! ENG_! FRE_! GER,

1_a_y_ENG_FRE_GER,
... Stessa per 1_a_y (8 sottogruppi)

1_a_x
Contiene sottogruppi:
1_a_x_ENG_FRE_GER,
1_a_x_! ENG_FRE_GER,
1_a_x_ENG_! FRE_GER,
1_a_x_! ENG_! FRE_GER,
1_a_x_ENG_FRE_! GER,
1_a_x_! ENG_FRE_! GER,
1_a_x_ENG_! FRE_! GER,
1_a_x_! ENG_! FRE_! GER,

1_a_y
Contiene sottogruppi:
1_a_y_ENG_FRE_GER,
... (8 sottogruppi)

1_a_x_ENG
Contiene sottogruppi:
1_a_x_ENG_FRE_GER,
1_a_x_ENG_! FRE_GER,
1_a_x_ENG_FRE_! GER,
1_a_x_ENG_! FRE_! GER

anni:
1
Contiene gruppi 1_a, 1_b

Avrete la possibilit di aggiungere qualsiasi attivit, per un anno o un gruppo

Attualmente, l'interfaccia per gli studenti  difficile da usare. Ci sto pensando su. Forse  pi semplice per voi, se tentate di lavorare il file xml .Fet.
-------------------------------------------------- -----------------------------

Nuovo - Aggiunto 27 marzo 2008: (Q-1-27-mar-2008)

D: Esempio: Ho 7 ore di Matematica per 5 giorni settimana (7  maggiore di 5). Come aggiungere correttamente questa divisione di attivit?

Domanda Generale: Ho una grande attivit divisa in pi attivit del numero di giorni per settimana. Come aggiungere il vincolo di minimo n giorni tra attivit?

R: Se si aggiungesse direttamente un insieme di attivit diviso in pi lezioni del numero di giorni a settimana e inoltre si aggiungesse il vincolo di minimo n giorni tra attivit, sarebbe un pessimo pratica per il modo in cui l'algoritmo di generazione opera (si rallenta la generazione e si rende pi difficile trovare una soluzione).

Il modo migliore per aggiungere l'attivit di questo genere potrebbe essere:

1. Aggiungere 'forza consecutive se stesso giorno', e poi unire attivit extra in coppie per ottenere un numero di attivit pari al numero di giorni per settimana. Esempio: se si hanno 7 attivit con durata 1 in una settimana di 5 giorni, si pu trasformare in 5 lezioni con durate: 2,2,1,1,1 e aggiungere un unico contenitore di attivit con questi 5 componenti (eventualmente aumentare il peso del vincolo aggiunto minimo N giorni tra le attivit fino al 100%)

2. Senza aggiungere 'forza consecutive se stesso giorno', e poi aggiungere una pi ampia attivit suddivisa in un certo numero di lezioni pari al numero di giorni a settimana e le restanti componenti in altre attivit pi grandi suddivise. Supponiamo, ad esempio, che  necessario aggiungere 7 attivit con durata 1 in 5 giorni alla settimana. Aggiungere 2 contenitori pi grandi di attivit, il primo diviso in 5 attivit con durata 1 e il secondo diviso in 2 attivit con durata 1 (eventualmente aumentando il peso dei vincoli aggiunti minimo n giorni tra le attivit per ciascuno dei 2 contenitori fino al 100%)

-------------------------------------------------- -----------------------------

Nuovo - Aggiunto 6 giugno 2008: (Q-1-6-giu-2008)

D: Mi occorre un modo per impostare il seguente vincolo:

Se l'Attivit1 si verifica per prima, allora l' Attivit2 pu essere consecutiva.
Ma, se l'Attivit2 si verifica per prima, poi l'Attivit1 deve essere preceduta almeno da un'altra ora.

Ad esempio, se l'algoritmo piazza Danza alla prima ora, dopo il Wrestling potrebbero essere messo in 2a ora, ma, se Wrestling  messo in 1a ora, dopo la Danza deve essere almeno alla 3  ora, se non  pi distante.

Una pi semplice ma meno utile soluzione potrebbe essere un vincolo che impone:

Attivit1 e Attivit2 siano non consecutive.

R: Ho una buona soluzione per voi, ma  un po complicato da aggiungere.

Supponiamo che abbiate attivit A1 e A2. Aggiungi la'attivit fittizia A3, con durata 1, non insegnanti ne studenti. Aggiungi il vincolo 2 attivit consecutive, A2 e A3 (A2 a poi di seguito A3). Aggiungi vincolo attivit non simultanee A1 e A3.

C' solo un piccolo problema: A2 non pu essere piazzata all'ultima ora. Per correggere: aumenta il numero di ore di 1 e vincola tutte le attivit reali (escludendo A3) a piazzarsi nelle prime ore. Puoi farlo con l'aggiunta di una caratteristica dell'attivit denominata Presto per A1 e A2 e una di nome Qualunque per A3, e vincola le attivit caratterizzate da Presto ad cadere nella fascia preferenziale delle prime n-1 ore di ogni giorno.

-------------------------------------------------- -----------------------------

Nuovo - Aggiunto il 14 giugno 2008:  stata aggiunta la possibilit di impostare 2 vincoli di minimo n giorni tra attivit quando si aggiunge una attivit composta da pi lezioni. Leggere la documentazione precedente, relativa al vincolo minimo n giorni tra attivit. In pratica, se si aggiunge il vincolo di minimo 2 (o 3) giorni tra attivit, FET propone automaticamente di aggiungere un secondo vincolo di minimo 1 (o 2) giorni.

-------------------------------------------------- -----------------------------

Nuovo - Aggiunto il 28 giugno 2008:
D: Qual  la differenza tra ore di inizio preferenziali e fasce orarie preferite?

A: Imporre fasce orarie  pi restrittivo perch comporta che tutte le ore di cui si compone l'attivit cadano nell'intervallo consentito.

Esempio: Lunedi Ore Preferite 8, 9 e 10. Se l'attivit A dura 2 ore, allora inizio significa che l'attivit A pu iniziare Luned alle ore 8, 9 o 10, mentre fascia oraria significa che una l'attivit A pu cominciare Lunedi alle ore 8 o 9 (10 non  consentito, perch l'ultima ora dell'attivit cadrebbe in un'ora non consentita).

-------------------------------------------------- -----------------------------

Nuovo - Aggiunto 10 luglio 2008:

Q: Cosa significa vincolo di minimo numero di buchi (ore) tra una serie di attivit?

R: Molti utenti hanno chiesto di mettere un buco tra attivit degli stessi insegnanti o tra le attivit con stesso insegnante e materia, se cadono lo stesso giorno. Questo  il vincolo che lo impone. Se si desidera ad esempio che l'insegnante Giovanni abbia almeno un buco tra tutte tutte le sue attivit, selezionare il filtro "Giovanni" e aggiungere tutte le sue attivit a un vincolo di questo tipo. Se si desidera che l'insegnante Giovanni abbia almeno un buco tra tutte le sue lezioni di Matematica, selezionare il filtro "Giovanni" e "Matematica" e aggiungere tutte le attivit risultanti ad un vincolo di questo tipo.

Occorre fare attenzione che le attivit selezionate non siano forzate ad essere consecutive da un vincolo del tipo 2 attivit consecutive oppure da vincoli di minimo n giorni tra attivit, nei quali sia selezionato Consecutuve se stesso giorno.

-------------------------------------------------- -----------------------------

Nuovo - Aggiunto il 11 luglio 2008:

D: Dato che la maggior parte dei nostri studenti deve utilizzare certi autobus, l'ultima lezione del giorno deve essere almeno la 5 (di 6 lezioni). L'anno 10, per esempio, ha permesso 2 inizi alla seconda ora, con 27 ore di lavoro in 5 x 6 ore la settimana.

R: E' possibile aggiungere il vincolo per studenti di minimo 5 ore al giorno, ma questo  anche pi di ci che vi occorre, e l'orario  ancora pi difficile da generare (l'anno 10 potrebbe avere 4 ore in un giorno: 1: asseza, 2: matematica , 3: fisica, 4: italiano, 5: scienze, 6: assenza in un normale orario).

E' possibile utilizzare qualche trucco, se non si riesce a trovare una soluzione con un minimo di 5 ore al giorno: aggiungere, per ogni livello pi basso dell'anno 10 (vedi * sotto), 3 attivit fittizie che rappresentino i massimo 2 inizi alla seconda ora e il termine alla ora 5 in un giorno (2 +1 = 3). Le prime 2 attivit hanno caratteristica "All'ninzio" e l'altra attivit ha caratteristica "AllaFine". Aggiungere 2 vincoli del tipo una serie di attivit ha una serie di ore preferite, "AllInizio", prima ora di ogni giorno e ultima ora di ogni giorno consentite e le altre non consentite e "AllaFine", consentita solo all'ultima ora di ogni giorno. Opzionale: aggiungere vincolo per studenti di numero inizi alla seconda ora = 0 per gli studenti coinvolti (si pu usare un anno o una classe). Dovrebbe funzionare bene, ma si deve lavorare un po' di pi per inserire i dati.

*: Se l'anno 10 non contiene classi, aggiungere attivit fittizie per l'anno 10. Se l'anno 10 contiene solo classi, aggiungere per ciascuna classe. Se l'anno 10 contiene sottogruppi, aggiungere per ciascun sottogruppo. Il motivo: se l'anno 10 contiene sottogruppi e si aggiunge una attivit fittizia, questa  vincolata ad essere allo stesso tempo per tutti i sottogruppi; se si aggiungono attivit fittizie per i sottogruppi, possono essere piazzate in ore diverse -> l'orario potrebbe essere pi facile da trovare.

-------------------------------------------------- -----------------------------

Nuovo - Aggiunto 15 luglio 2008:

Da Zsolt Udvari:

D: mi occorre un vincolo: uno studente (o insieme di studenti) devono avere una attivit ad un'ora specifica perch nella nostra scuola c' un culto in chiesa il lunedi alle 7:30, e la scuola inizia alle 8:00 - gli studenti devono avere una attivit lunedi la prima ora - e c' una classe che deve avere una prima ora vuota.

Il problema (esattamente): c' una classe, 5A (11-12 anni), e hanno 4 ore di inglese, in due sottogruppi (5A1 e 5A2), con lo stesso (!) insegnante (DIOR). Studieranno anche latino questi sottogruppi, ma "solo" 3 ore. E nelle altre ore staranno assieme. Quindi, se non vogliamo buchi dobbiamo avere le stesse ore per inglese e latino, e un'ora di inglese sar sola. Ma questi studenti sono troppo giovani e cos devono essere accompagnati a pranzo e non pu essere che vadano in due sottogruppi a pranzo. Quindi, una volta il sottogruppo 5A1 non ha la prima ora e 5A2 ha lezione di inglese e una secondo vice versa (se non vogliamo buchi). Ma in lunedi ...

3 risposte di Liviu:

A1: Forse si potrebbero usare attivit fittizie per rappresentare i buchi alla prima ora. Diciamo che ammettiamo 2 buchi alla prima ora tranne il lunedi. Quindi aggiungiamo un'attivit fittizia per ogni sottogruppo (con caratteristica della materia ST) e orario preferenziale di inizio per le attivit con etichetta ST, ammesso la prima ora di marted, mer, gio e  ven. Dovrebbe funzionare.

Inoltre consentito all'ultima ora di ogni giorno. Ma se  possibile avere 2 ultime ore vuote in un giorno, penso che non  possibile utilizzare questo trucco.

A2: ho capito che si desidera consentire ad 1 ingresso alla seconda ora, non il Lunedi.

Quindi, aggiungere ore +1: 7:30, 8, ...

Aggiungi non disponibili per gli insiemi di studenti (o interruzioni - per tutti) il mar, mer, gio e ven, ore 7:30.

Aggiungere 1 attivit di Religione, tutti gli studenti, nessun docente. Ora di inizio preferenziale lun 7:30 (o potete aggiungere pi attivit).

Aggiungi il vincolo di attivit (una o pi, come hai aggiunto una o pi Religione),
Lunedi, 7:30, per la / le suddetta/e attivit.

Aggiungi vincolo di inizio presto per studenti, max 1 inizio alla seconda ora.

A3: Vincolo di ore preferite per attivit crea buchi, per cui meglio utilizzare questo mezzo:

Aggiungi un'ora dalle 7:30.

Vincolo di ore preferite per attivit, non consentito il Lunedi alle 7:30, peso 100%.

Vincolo interruzioni (o non disponibile per tutti gli studenti), non consentito mar, mer, gio, ven 7:30.

Aggiungi vincolo di inizio presto per studenti max 2 inizi alla seconda ora (max 2
inizi, non 1, attenzione, perch il Lunedi 7:30  uno e se ne consente un altro).

-------------------------------------------------- -----------------------------

Nuovo - Aggiunto 15 luglio 2008:

D: Che tipo di file utilizza FET?

R: FET utilizza file di testo, XML o HTML o txt o CSV (Comma Separated Values - per l'importazione / esportazione). Il codec utilizzato  UTF-8 e, probabilmente, UTF-16 dovrebbero funzionare.

-------------------------------------------------- -----------------------------

Nuovo, ha aggiunto 4 agosto 2008:

D: Aiuto sula vincolo ore di inizio o fasce orarie preferite per subattivit (una serie di subattivit ha una serie di ore di inizio o una fascia oraria preferita)

R: selezionare il numero della componente di talune attivit (ad esempio, se avete un'attivit suddivisa in 5 lezioni alla settimana, avremo le componenti 1, 2, 3, 4 o 5. Solo il numero selezionato corrispondente a questa parte di attivit (la corrispondente componente dell'attivit) sar sottoposta a vincolo.

Potrai anche specificare l'insieme di subattivit selezionando un insegnante (se vuoto - tutti gli insegnanti), una serie di studenti (se vuoto - tutti gli studenti), una materia (se vuoto - tutte le materie) e una caratteristica della attivit (se vuoti, tutte le caratteristiche delle attivit) e una serie di giorni/ore consentite.

Ore di inizio significa che una attivit pu iniziare solo in queste ore.

Fasce orarie sono pi restrittive, perch una attivit pu iniziare, finire ed essere piazzata solo in questi intervalli (se l'attivit dura 2 ore e Lunedi  consentita alle 8:00, 9:00 e 10:00, allora l'attivit non pu che partire alle 8: 00 o alle 9:00.

Ci  utile se, ad esempio, le lezioni di matematica sono 4-5 a settimana, per vincolare la prima componente e la seconda componente a cadere presto (entro la seconda o massimo terza ora. Potrai aggiungere 2 vincoli per ci, con le componente numero 1 e 2, entrambi con materia Matematica. O, se si desidera che per le attivit divise in 4 lezioni almeno 2 cadano presto e per attivit suddivise in 5 che almeno 3 lezioni cadano presto, si pu aggiungere il vincolo per le lezioni con numero di componente 3, 4 e 5 (trucco intelligente!).

Un'altra cosa: se si hanno talvolta 1 e talvolta 2 lezioni a settimana per una certa materia, diciamo biologia, e si vuole limitare uno dei componenti quando ce ne sono 2 a settimana, e nessuno se ce n' solo 1,  possibile aggiungere un simile vincolo per la componente numero = 2.

-------------------------------------------------------------------------------